package com.MSofLectures.Entity.User;

import java.util.List;
import java.util.Map;

public interface UserImp {
	public String getUserPwd();
	public void setUserPwd(String password);

	public String getUserId();
	public void setUserId(String userId);

	/*
	 * 以下是针对用户属性的key-value对进行操作
	 */
	public String getValue(String key);
	public void altValue(String key,String value);
	public void addKey(String key,String value);
	public Map<String,String>iterator();

	public boolean map();	//映射以获取用户的属性key-value对
	public void save();		//保存用户属性

	public boolean isExist();//检测当前这个user是否成功创建……貌似用处不大
	public void altPwd(String newpwd);
	
	public boolean checkLectureCode(String lecture_registerCode,String lectureId);//提交验证码以证明自己已经参加某讲座
	public String registerLecture(String lectureId);//报名讲座
	public String teacherRegisterLecture(String userId,String lectureId);//手动报名
	public String userLectureStatus(String lectureId);//学生在某一讲座的状态；
	public String userOrder(String lectureId,String userId);//察看某一讲座的报名序号
	public Map<String,String> showOneRegisterLecture(String registerLectureId);//展示某一次讲座参加经历
	public List<String> showAllRegisterLecture();//展示所有讲座，返回讲座的id
	public List<String> showAllCheckLecture();
    public List<String> viewLectureShakeResult(String lectureId,String shake);//查看摇号结果
    public List<String> showLectureCode(String lectureId);//展示签到验证码
    public List<String> showCheck(String lectureId);
    public List<String> listAllUsers();//展示所有已经报名用户信息，仅管理员（教师）可用
    public List<String> listTheSameYearUsers(String enterYear);//展示同一年级的所有学生；
    public List<String> listTheSameMajorUsers(String major,String enterYear);//展示同一专业的所有学生；

    public boolean deleteUser_registerLecture(String lectureId);//撤销报名，若是已经摇号选中或者截止报名，则不许撤销
    
    public void finalize() throws Throwable;
}
